﻿Public Class StringFormat


    ''' <summary>
    ''' Xóa bỏ tất cả khoảng trắng 
    ''' </summary>
    ''' <param name="sInput">Chuỗi ký tự cần xử lý</param>
    Public Function RemoveSpaces(ByVal sInput As String) As String

        Return sInput.Replace(" ", "").Trim()

    End Function


    ''' <summary>
    ''' Xóa bỏ tất cả dấu gạch nối (-)
    ''' </summary>
    ''' <param name="sInput">Chuỗi ký tự cần xử lý</param>
    Public Function RemoveDashes(ByVal sInput As String) As String

        Return sInput.Replace("-", "").Replace("–", "").Trim()

    End Function


    ''' <summary>
    ''' Xóa bỏ tất cả khoảng trắng và dấu gạch nối
    ''' </summary>
    ''' <param name="sInput">Chuỗi ký tự cần xử lý</param>
    Public Function RemoveDashesAndSpaces(ByVal sInput As String) As String

        Return RemoveSpaces(RemoveDashes(sInput))

    End Function


    ''' <summary>
    ''' Định dạng số điện thoại
    ''' </summary>
    ''' <param name="sInput">Chuỗi ký tự cần xử lý</param>
    Public Function TelephoneFormat(ByVal sInput As String) As String

        Dim result As String

        'Loại bỏ gạch nối và khoảng trắng
        result = RemoveDashesAndSpaces(sInput)

        'Loại bỏ mã quốc gia Việt Nam +84 nếu có
        result = result.Replace("+84", "")

        'Loại bỏ số 0 ở ngoài cùng bên trái
        If result.Substring(0, 1).Equals("0") Then
            result = result.Substring(1, result.Length - 1)
        End If

        'Nếu điện thoại có 9 số:
        If result.Length = 9 Then
            Return "+84 " & _
                result.Substring(0, 1) & " " & _
                result.Substring(1, 1) & " " & _
                result.Substring(2, 3) & " " & _
                result.Substring(5, 4)

        ElseIf result.Length = 10 Then      'Điện thoại có 10 số
            Return "+84 " & _
                result.Substring(0, 3) & " " & _
                result.Substring(3, 3) & " " & _
                result.Substring(6, 4)

        Else
            Return "+84 " & _
                result.Substring(0, 3) & " " & _
                result.Substring(3, 3) & " " & _
                result.Substring(6, result.Length - 6)

        End If

    End Function

End Class
